home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / fdimg / —‹Œêsrc.lzh / main0.c < prev    next >
C/C++ Source or Header  |  1993-03-19  |  4KB  |  192 lines

  1. #include    "3DDEF.H"
  2. #include    "GLOBAL.H"
  3. #include    "FORWARD.H"
  4. #include    "XCODE.H"
  5. #include    "doslib.h"
  6.  
  7. UBYTE argv0[MAXLINE];
  8. UBYTE options[MAX_OPTION][MAXLINE];
  9.  
  10. extern UWORD view_flag;
  11. extern WORD VERSION;
  12.  
  13. void
  14. main(int argc,STR argv[])
  15. {
  16.     UNIT *wp;
  17.     int flag;
  18.     int i,fc,oc;
  19.  
  20.     if (argc > 10000) {
  21.         printf("隠しコマンドなんて無いよぉ");
  22.     }
  23.     B_PRINT("ThunderWord V1.2 (C) 1992,1993 満開製作所");
  24.  
  25.  
  26.     etc_begin();
  27.     fep_init_first();
  28.  
  29.     DUM_FLAG = 0;
  30.  
  31.     strcpy(argv0,argv[0]);    /* 自分を保存する */
  32.  
  33.     init_first();        /* 初期化、カレントは0番になる */
  34.     for(oc=0,i=1;i<argc;i++) {    /* 0番以外のすべてのパラメータについて */
  35.         if ((*argv[i] == '-') || (*argv[i] == '/')) {    /* オプションである */
  36.             if (oc < MAX_OPTION) {
  37.                 strcpy(options[oc++],argv[i]);
  38.             }
  39.         }
  40.     }
  41.     *options[oc] = EOS;
  42.     init_parameters();    /* パラメータをデフォルトにする */
  43.     if (!DUM_FLAG && KNJCTRL(50) < 200) {
  44.         DUM_FLAG = 1;
  45.         etc_beep();
  46.         B_PRINT("\n\rASK68K.SYS のバージョンが 2.00 以前なので、ダミーモードにします[Y]?");
  47.         etc_wait_y();
  48.     }
  49. /*    fep_init();    */        /* fep を初期化 */
  50.      fep_key_clear();
  51.     for(fc=0,i=1;i<argc;i++) {    /* 0番以外のすべてのパラメータについて */
  52.         if ((*argv[i] == '-') || (*argv[i] == '/')) {    /* オプションである */
  53.             continue;
  54.         }
  55.         if (fc < MAX_FILE) {    /* ファイル名である */
  56.             ctrl_x_ctrl_f1(argv[i]);
  57.             fc++;
  58.         } else {
  59.             under_print0((STR)"ファイルの数が最大を越えました。 [Y]? ");
  60.             etc_beep();
  61.             etc_y_exit();
  62.         }
  63.     }
  64.     if (fc >=2 ) {    /* 複数の指定があったら、最後に指定されたファイルになってるので */
  65.         ctrl_x_x();    /* 最初のファイルにする */
  66.     }
  67.     under_blanc();
  68.  
  69.     if (!fc) {    /* ファイル指定が無かった */
  70.         flag = file_open(fc,(STR)"dummy");
  71.         file_set_text(fc,fc);
  72.         if (flag >= 0) {    /* 正常 */
  73.             buff_read_file_x(fc);
  74.             /* fc なるバッファにファイルを読み込む */
  75.         } else {        /* エラー */
  76.             error("ファイルオープンエラーです");
  77.         }    
  78.         file_close(fc);
  79.     }
  80.     if (VERSION >= 300 ) {
  81.         etc_begin2();
  82.     }
  83.     fep_init();
  84.     work();        /* カレントに対して作業する */
  85.     init_exit();
  86. }
  87.  
  88. #if 1
  89.  
  90. /* エラーメッセージの表示 */
  91. void
  92. error(char *error_message)
  93. {
  94.     UBYTE w[MAXLINE];
  95.     UBYTE c;
  96.  
  97.     sprintf(w,"エラーが発生しました:%s [Push 'Y' Key]",error_message);
  98.     under_print0(w);
  99.     while(1) {
  100.         etc_beep();
  101.         c = toupper(fep_inkey_raw());
  102.         if (c == 'Y') {
  103.             return;
  104.         }
  105.         if (c == 'C'-'@') {
  106.             init_exit();
  107.             etc_exit(1);
  108.         }
  109.     }
  110. }
  111.  
  112. #else
  113.  
  114. /* エラーメッセージの表示 */
  115. void
  116. error(char *error_message)
  117. {
  118. }
  119.  
  120. #endif
  121.  
  122.  
  123. #if 0
  124. void
  125. check(STR s,int i)
  126. {
  127.     printf("%s::%d\n",s,i);
  128.     getchar();
  129. }
  130.  
  131. void
  132. main_dump_files()
  133. {
  134.     int i;
  135.  
  136.     etc_beep();
  137.     window0();
  138.     for(i=0;i<16;i++) {
  139.         printf("%d:[%s][%s]\n",i,
  140.         FILE_NAMES[i].CONTENT,
  141.         FILE_NAMES_ST[i].CONTENT);
  142.     }
  143. }
  144. #endif
  145.  
  146. #if 1
  147. void
  148. etc_trim_tail()
  149. {
  150.     UBYTE l[VERY_LONG_LINE*8];
  151.     register UNIT *wp;
  152.  
  153.     if (TAIL->MAE == HEAD) {
  154.         return;
  155.     }
  156.     while(!line_length(wp = TAIL->MAE)) {
  157.         if (wp != HEAD) {
  158.             if (wp->MAE == HEAD) {
  159.                 return;
  160.             }
  161.             line_get_body(l,wp->MAE);
  162.             if (etc_jlast(l) != CR) {
  163.                 if (CL == wp) {
  164.                     UBYTE s[VERY_LONG_LINE*8];
  165.                     strcat(l,"あ");
  166.                     if (cut_line(l,s,l,CURRENT_JIZUME) == 2) {
  167.                         /* 前の行は1行を成立させている */
  168.                         break;
  169.                     } else {
  170.                         ctrl_b();
  171.                     }
  172. /*                    CL = CL->MAE;*/
  173.                 }
  174.                 line_delete1_echo_after_bag(TAIL->MAE);
  175.             } else {
  176.                 break;
  177.             }
  178.         } else {
  179.             break;
  180.         }
  181.     }
  182. }
  183. #endif
  184.  
  185. void
  186. main_set_view_flag()
  187. {
  188.     view_flag = strchr(FILE_NAMES_ST[WDATA[CWN].WTEXTS].CONTENT,'[');
  189.  
  190. }
  191.  
  192.